home *** CD-ROM | disk | FTP | other *** search
/ Aminet 3 / Aminet 3 - July 1994.iso / Aminet / dev / gui / GenCodeE_14.lha / GenCodeE / V1.4 / E / click / Click_procs.e < prev    next >
Encoding:
Text File  |  1994-04-23  |  2.2 KB  |  84 lines

  1.     /* This procedure creates one app object */
  2. PROC create_app()
  3.  
  4.     DEF app, wi_try, tx_label_0, bt_1stbutton, bt_2ndbutton, bt_3rdbutton
  5.  
  6.     DEF tmp_object : PTR TO obj_app
  7.  
  8.     IF ( tmp_object := New( SIZEOF obj_app ) ) = NIL THEN RETURN NIL
  9.  
  10.     tmp_object.stR_TX_label_0 := '\e8\ecClick on buttons'
  11.  
  12.     app := ApplicationObject,
  13.         MUIA_Application_Author, 'Eric Totel',
  14.         MUIA_Application_Base, 'CLICK',
  15.         MUIA_Application_Title, 'Click',
  16.         MUIA_Application_Version, '$VER : Click 1.0',
  17.         MUIA_Application_Copyright, 'Eric Totel 1994',
  18.         MUIA_Application_Description, 'just a demo !!!',
  19.         SubWindow, wi_try := WindowObject,
  20.             MUIA_Window_Title, 'Click !!!',
  21.             MUIA_Window_ID, MAKE_ID( "0", "W", "I", "N" ),
  22.             WindowContents, GroupObject,
  23.                 Child, tx_label_0 := TextObject,
  24.                     MUIA_Background, 131,
  25.                     MUIA_Text_Contents, tmp_object.stR_TX_label_0,
  26.                     MUIA_Text_SetMax, 0,
  27.                     MUIA_Text_SetMin, 1,
  28.                     MUIA_Frame, 9,
  29.                 End,
  30.                 Child, GroupObject,
  31.                     MUIA_Group_Horiz, MUI_TRUE,
  32.                     MUIA_Group_SameWidth, MUI_TRUE,
  33.                     Child, bt_1stbutton := KeyButton( 'Button 1', "1" ),
  34.                     Child, bt_2ndbutton := KeyButton( 'Button 2', "2" ),
  35.                     Child, bt_3rdbutton := KeyButton( 'Button 3', "3" ),
  36.                 End,
  37.             End,
  38.         End,
  39.     End
  40.  
  41.     tmp_object.app            := app
  42.     tmp_object.wi_try         := wi_try
  43.     tmp_object.tx_label_0     := tx_label_0
  44.     tmp_object.bt_1stbutton   := bt_1stbutton
  45.     tmp_object.bt_2ndbutton   := bt_2ndbutton
  46.     tmp_object.bt_3rdbutton   := bt_3rdbutton
  47.  
  48.     IF tmp_object.app = NIL
  49.         Dispose( tmp_object )
  50.         tmp_object := NIL
  51.     ENDIF
  52.  
  53. ENDPROC tmp_object
  54.  
  55.  
  56.     /* This procedure deletes one app object */
  57. PROC dispose_app( tmp_object : PTR TO obj_app )
  58.  
  59.     Mui_DisposeObject( tmp_object.app )
  60.     Dispose( tmp_object )
  61.  
  62. ENDPROC
  63.  
  64.  
  65.     /* DoMethod() function */
  66. PROC doMethod( obj:PTR TO object, msg:PTR TO msg )
  67.  
  68. DEF h:PTR TO hook, o:PTR TO object, dispatcher
  69.  
  70.     IF obj
  71.         o := obj-SIZEOF object     /* instance data is to negative offset */
  72.         h := o.class
  73.         dispatcher := h.entry      /* get dispatcher from hook in iclass */
  74.         MOVEA.L h,A0
  75.         MOVEA.L msg,A1
  76.         MOVEA.L obj,A2           /* probably should use CallHookPkt, but the */
  77.         MOVEA.L dispatcher,A3    /*   original code (DoMethodA()) doesn't. */
  78.         JSR (A3)                 /* call classDispatcher() */
  79.         MOVE.L D0,o
  80.         RETURN o
  81.     ENDIF
  82.  
  83. ENDPROC NIL
  84.